1. Field of the Invention
This invention relates generally to methods and apparatus for downloading an executable program and more particularly for providing an optimal and intelligent mode to speed up the downloading of an executable program from the Internet.
2. Description of the Related Art
The explosive growth of the Internet has brought with it many capabilities to the work and home environments. The ability to download applications and software, especially JAVA related applications, promises to further enhance the functionality of personal computers in the office or home environment. However, the slow speed to download a program from the Internet acts as a major impediment to users being able to appreciate these capabilities.
FIG. 1 illustrates block diagram 100 depicting the prior art manner of downloading an executable program from the Internet to run a JAVA software application through a web browser such as Internet Explorer™ or Netscape Navigator™. Server 102 has a hyper text mark-up language (HTML) page 104. The HTML page 104 is downloaded to the client 108 through a web browser 110 via the Internet 106. An ActiveX control 112 which is downloaded to the client 108 and is caused to be run by the web browser 110. The ActiveX control includes the Object Linking and Embedding Control (OCX) 114, a zip file 116 which includes JAVA programs and class files and an .inf file which provides the system with the necessary information to install the OCX 114 and the zip file 116. Once the ActiveX 112 control is executed, the JAVA programs from the zip file 116 can be executed. The OCX, zip file and .inf files are packaged in a .cab file. Accordingly, the ActiveX installs the .cab file and decompresses the zip file to run the different JAVA application classes through the web browser.
Because the entire .cab file must be downloaded prior to the JAVA application being run, the delays imposed by the prior art method of downloading the application discourage users from downloading applications over the Internet unless very fast Internet access is available. For example, a typical .cab file could take five minutes or more to download and install using a 56K dial-up modem. Even if the user does not use some of the classes, the user must wait for all the classes contained in the zip file to be downloaded before functional use can occur. The wait time further increases as the functionality of the software is enhanced since the .cab file grows larger with additional or enhanced functionality.
While the problem exists with initial downloads of applications, it also extends to modifications of applications. For example, if a 1 Kilobyte modification is made to an existing program for a new revision or an update, then the user will have to download the complete application or mail order a disc or floppy disk with the revised application. However, in an effort to contain costs, companies are encouraging users to download files over the Internet rather than shipping compact discs or floppy disks for new or revised applications.
Although there is the possibility to provide patches in some instances, the management of patches becomes unwieldy. For example, when multiple patches are installed problems arise where a later available patch is installed, but an earlier patch was either not installed or installed after the later patch. In this situation, the program may not function properly and the problem compounds itself as future patches are issued. Therefore, the management of the patch installation prevents patches from becoming a viable alternative.
As a result, there is a need to solve the problems of the prior art to provide a method for downloading applications from the Internet in a quick and efficient manner while keeping the functionality of the application available to a user.